--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
scripts/ci/schema_fixture_generate.py e41daa5b65e07a5baa1aaad32d97f90482f1cd1c (e41daa5b) Text, 1.43 KB
T8b949e#!/usr/bin/env python3
T8b949e# SPDX-License-Identifier: 0BSD
T8b949e"""Generate schema_v{N}.db fixtures for migration matrix tests."""
Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations
Tff7b72import T7ee787json
Tff7b72from T7ee787pathlib Tff7b72import Te6edf3Path
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787databaseT7ee787.T7ee787provider Tff7b72import Te6edf3DatabaseProvider
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787databaseT7ee787.T7ee787schema Tff7b72import Te6edf3DatabaseSchema
Te6edf3ROOT Tff7b72= Te6edf3PathTb4b4b4(Tff7b72__file__Tb4b4b4)Tff7b72.Td2a8ffresolveTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffparentsTb4b4b4[T79c0ff2Tb4b4b4]
Te6edf3FIXTURE_DIR Tff7b72= Te6edf3ROOT Tff7b72/ Ta5d6ff"Ta5d6fftests/backend/fixtures/schema_versionsTa5d6ff"
Te6edf3MANIFEST Tff7b72= Te6edf3FIXTURE_DIR Tff7b72/ Ta5d6ff"Ta5d6ffmanifest.jsonTa5d6ff"
Tff7b72def Td2a8ffmainTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3latest Tff7b72= Te6edf3DatabaseSchemaTff7b72.Td2a8ffLATEST_VERSION
Te6edf3FIXTURE_DIRTff7b72.Td2a8ffmkdirTb4b4b4(Te6edf3parentsTff7b72=Tff7b72TrueTb4b4b4, Te6edf3exist_okTff7b72=Tff7b72TrueTb4b4b4)
Te6edf3versions Tff7b72= Tb4b4b4[Te6edf3latestTb4b4b4]
Tff7b72if Te6edf3latest Tff7b72>Tff7b72= T79c0ff1Tb4b4b4:
Te6edf3versionsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3latest Tff7b72- T79c0ff1Tb4b4b4)
Tff7b72if Te6edf3latest Tff7b72>Tff7b72= T79c0ff2Tb4b4b4:
Te6edf3versionsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3latest Tff7b72- T79c0ff2Tb4b4b4)
Te6edf3versions Tff7b72= Tffa657sortedTb4b4b4(Tffa657setTb4b4b4(Te6edf3versionsTb4b4b4)Tb4b4b4)
Te6edf3manifestTb4b4b4: Tffa657dictTb4b4b4[Tffa657strTb4b4b4, Tffa657strTb4b4b4] Tff7b72= Tb4b4b4{Ta5d6ff"Ta5d6fflatest_versionTa5d6ff"Tb4b4b4: Tffa657strTb4b4b4(Te6edf3latestTb4b4b4)Tb4b4b4}
Tff7b72for Te6edf3ver Tff7b72in Te6edf3versionsTb4b4b4:
Te6edf3db_path Tff7b72= Te6edf3FIXTURE_DIR Tff7b72/ Ta5d6fffTa5d6ff"Ta5d6ffschema_vTffd700{Te6edf3verTffd700}Ta5d6ff.dbTa5d6ff"
Tff7b72if Te6edf3db_pathTff7b72.Td2a8ffexistsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3db_pathTff7b72.Td2a8ffunlinkTb4b4b4(Tb4b4b4)
Te6edf3provider Tff7b72= Te6edf3DatabaseProviderTb4b4b4(Tffa657strTb4b4b4(Te6edf3db_pathTb4b4b4)Tb4b4b4)
Te6edf3schema Tff7b72= Te6edf3DatabaseSchemaTb4b4b4(Te6edf3providerTb4b4b4)
Te6edf3schemaTff7b72.Td2a8ff_create_initial_tablesTb4b4b4(Tb4b4b4)
Te6edf3schemaTff7b72.Td2a8ffmigrate_up_toTb4b4b4(Te6edf3verTb4b4b4)
Te6edf3providerTff7b72.Td2a8ffclose_allTb4b4b4(Tb4b4b4)
Te6edf3manifestTb4b4b4[Ta5d6fffTa5d6ff"Ta5d6ffvTffd700{Te6edf3verTffd700}Ta5d6ff"Tb4b4b4] Tff7b72= Te6edf3db_pathTff7b72.Td2a8ffname
Te6edf3MANIFESTTff7b72.Td2a8ffwrite_textTb4b4b4(Te6edf3jsonTff7b72.Td2a8ffdumpsTb4b4b4(Te6edf3manifestTb4b4b4, Te6edf3indentTff7b72=T79c0ff2Tb4b4b4) Tff7b72+ Ta5d6ff"Tffea00\nTa5d6ff"Tb4b4b4, Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffWrote fixtures for versions Tffd700{Te6edf3versionsTffd700}Ta5d6ff under Tffd700{Te6edf3FIXTURE_DIRTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72return T79c0ff0
Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(Te6edf3mainTb4b4b4(Tb4b4b4)Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────